-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
IExtension`1.xml
163 lines (151 loc) · 9.05 KB
/
IExtension`1.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<Type Name="IExtension<T>" FullName="System.ServiceModel.IExtension<T>">
<TypeSignature Language="C#" Value="public interface IExtension<T> where T : IExtensibleObject<T>" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IExtension`1<(class System.ServiceModel.IExtensibleObject`1<!T>) T>" FrameworkAlternate="dotnet-uwp-10.0;netcore-1.0;netcore-1.1;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-2.0" />
<TypeSignature Language="DocId" Value="T:System.ServiceModel.IExtension`1" />
<TypeSignature Language="VB.NET" Value="Public Interface IExtension(Of T)" />
<TypeSignature Language="F#" Value="type IExtension<'T (requires 'T :> IExtensibleObject<'T>)> = interface" />
<TypeSignature Language="C++ CLI" Value="generic <typename T>
 where T : IExtensibleObject<T>public interface class IExtension" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit IExtension`1<(class System.ServiceModel.IExtensibleObject`1<!T>) T>" FrameworkAlternate="net-8.0" />
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.7.0.0</AssemblyVersion>
<AssemblyVersion>4.9.0.0</AssemblyVersion>
<AssemblyVersion>4.10.0.0</AssemblyVersion>
<AssemblyVersion>4.10.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>6.2.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<TypeForwardingChain>
<TypeForwarding From="System.ServiceModel" FromVersion="4.0.0.0" To="System.ServiceModel.Primitives" ToVersion="0.0.0.0" FrameworkAlternate="dotnet-uwp-10.0" />
</TypeForwardingChain>
<TypeParameters>
<TypeParameter Name="T">
<Constraints>
<InterfaceName>System.ServiceModel.IExtensibleObject<T></InterfaceName>
</Constraints>
</TypeParameter>
</TypeParameters>
<Interfaces />
<Docs>
<typeparam name="T">The object that participates in the custom behavior.</typeparam>
<summary>Enables an object to extend another object through aggregation.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
WCF allows you to extend <xref:System.ServiceModel.IExtensibleObject%601?displayProperty=nameWithType> objects (the <xref:System.ServiceModel.IContextChannel?displayProperty=nameWithType>, <xref:System.ServiceModel.ServiceHost?displayProperty=nameWithType>, <xref:System.ServiceModel.InstanceContext?displayProperty=nameWithType>, and <xref:System.ServiceModel.OperationContext?displayProperty=nameWithType> classes) by adding a new state or behavior by using its extensible object pattern. The extensible object pattern is used in WCF to either extend existing run-time classes with new functionality or to add new state features to an object.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="Attach">
<MemberSignature Language="C#" Value="public void Attach (T owner);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Attach(!T owner) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.IExtension`1.Attach(`0)" />
<MemberSignature Language="VB.NET" Value="Public Sub Attach (owner As T)" />
<MemberSignature Language="F#" Value="abstract member Attach : 'T -> unit" Usage="iExtension.Attach owner" />
<MemberSignature Language="C++ CLI" Value="public:
 void Attach(T owner);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="owner" Type="T" />
</Parameters>
<Docs>
<param name="owner">The extensible object that aggregates this extension.</param>
<summary>Enables an extension object to find out when it has been aggregated. Called when the extension is added to the <see cref="P:System.ServiceModel.IExtensibleObject`1.Extensions" /> property.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Use this method to keep track of the <xref:System.ServiceModel.IExtensibleObject%601> object to which the current instance of the extension belongs. This call gives extensions a chance to handle events or inspect properties of their owner.
## Examples
The following example code shows how this method can be used to keep track of the <xref:System.ServiceModel.IExtensibleObject%601> object to which the current instance of the extension belongs.
```csharp
InstanceContext owner;
public void Attach(InstanceContext owner)
{
this.owner = owner;
}
```
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Detach">
<MemberSignature Language="C#" Value="public void Detach (T owner);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Detach(!T owner) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.IExtension`1.Detach(`0)" />
<MemberSignature Language="VB.NET" Value="Public Sub Detach (owner As T)" />
<MemberSignature Language="F#" Value="abstract member Detach : 'T -> unit" Usage="iExtension.Detach owner" />
<MemberSignature Language="C++ CLI" Value="public:
 void Detach(T owner);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="owner" Type="T" />
</Parameters>
<Docs>
<param name="owner">The extensible object that aggregates this extension.</param>
<summary>Enables an object to find out when it is no longer aggregated. Called when an extension is removed from the <see cref="P:System.ServiceModel.IExtensibleObject`1.Extensions" /> property.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Use the <xref:System.ServiceModel.IExtension%601.Detach%2A> method to find out when the extension has been removed. An extension can use this to unhook events on the extensible object. An extension can also throw <xref:System.InvalidOperationException?displayProperty=nameWithType> from this method to indicate that, once added, the extension cannot be removed.
Note that this method is not called when the owner object is disposed or closed. If needed, it is up to the extension or the code adding the extension to hook the appropriate <xref:System.ServiceModel.ICommunicationObject?displayProperty=nameWithType> events or implement the appropriate interfaces (for <xref:System.ServiceModel.OperationContext?displayProperty=nameWithType>) to observe the lifecycle of the owner.
]]></format>
</remarks>
</Docs>
</Member>
</Members>
</Type>